Closed Bug 1942260 Opened 5 months ago Closed 12 days ago

Update the version of Node for tests to use at least Node 22

Categories

(Firefox Build System :: Toolchains, task)

task

Tracking

(firefox140 fixed)

RESOLVED FIXED
140 Branch
Tracking Status
firefox140 --- fixed

People

(Reporter: whimboo, Assigned: standard8)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

The current version 18 of node that is used on test machines will reach its support end by May 2025. We should consider to upgrade node to at least version 20 LTS. Given that there is as well version 22 LTS available should we upgrade directly to the latest one?

We need it for running newer Puppeteer tests (they actually rely on 22LTS now) and for now we have a workaround in place to fallback to tsx instead of using the new --experimental-strip-types feature. Also when Node 18 reaches its end Puppeteer will stop supporting this version of Node.

Hi Mike, if you could give some feedback that would be appreciated. Thanks!

Flags: needinfo?(mh+mozilla)

I'm not sure what feedback you're looking for.

Flags: needinfo?(mh+mozilla)

Node 22 would be more useful unless there's objections/issues. We just hit a case in bug 1939658, which would need Node 22.1.0.

(In reply to Mike Hommey [:glandium] from comment #2)

I'm not sure what feedback you're looking for.

I think that the question in comment 0 was clear enough (there is nothing else on this bug otherwise)?

But as Mark now stated as well, maybe we should skip version 20 (LTS) and directly upgrade to 22 (LTS)?

The only question I see in comment 0 is "Given that there is as well version 22 LTS available should we upgrade directly to the latest one?" and I don't have any insight wrt that.

FYI: We plan to test WebTransport over HTTP/2 with fallback components, which also requires Node.js version 22.
Thanks.

Hi Mike,

Any chance you could make this happen a bit sooner?
Or could you guide me on how to do this?

Thanks.

Flags: needinfo?(mh+mozilla)

You're free to submit a patch editing taskcluster/kinds/toolchain/node.yml and taskcluster/kinds/fetch/toolchains.yml appropriately.

Flags: needinfo?(mh+mozilla)

Updating the summary to reflect that we would rather directly update to 22.

Summary: Update the version of Node for tests to use at least Node 20 → Update the version of Node for tests to use at least Node 22

Apparently, we need to build node 22 from source (like what we did for node 18).
Unfortunately, I got this build failure and I have no idea how to fix it.

I don't know much about C++ but searching a bit on the web opens the question for me if common_reference_t is a c++20 concept feature. GCC 11.4 doesn't seem to support C++20 by default. Would maybe using the -std=c++20 compiler flag be an option to get it working? But just a shot in the dark...

Depends on: 1956435
Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED

The attached patch (and patch queue below that) should get you started. You may need to adjust the max-run-time for the task.

Assignee: mh+mozilla → nobody
Status: ASSIGNED → NEW
Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED

There is an r+ patch which didn't land and no activity in this bug for 2 weeks.
:glandium, could you have a look please?
If you still have some work to do, you can add an action "Plan Changes" in Phabricator.
For more information, please visit BugBot documentation.

Flags: needinfo?(sguelton)
Flags: needinfo?(mh+mozilla)

The attached patch is not enough to address comment 0. It's a stepping stone for someone to test the new version of node.

Flags: needinfo?(sguelton)
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(kershaw)

(In reply to Mike Hommey [:glandium] from comment #15)

The attached patch is not enough to address comment 0. It's a stepping stone for someone to test the new version of node.

Sorry for the delay.

I think we should land that patch and resolve this bug. I'll file another bug for using node 22 in xpcshell-test.

Flags: needinfo?(kershaw)
See Also: → 1846951

I'm happy to see this patch landed as is, and we can file a separate bug as well for getting puppeteer tests upgraded to Node 22.

Mike, or do you want to see all tasks that use Node 18 upgraded at once unless they show failures?

Flags: needinfo?(mh+mozilla)

(In reply to Henrik Skupin [:whimboo][⌚️UTC+2] from comment #17)

I'm happy to see this patch landed as is, and we can file a separate bug as well for getting puppeteer tests upgraded to Node 22.

Mike, or do you want to see all tasks that use Node 18 upgraded at once unless they show failures?

We should be able to upgrade everything at the same time, the amount of work should be about the same unless there's issues on a particular build set. We have patterns to follow (I might have done it already, but I haven't had time to look).

I don't see an issue with attaching a second patch to this bug to add the additional items, especially given what Mike has already said.

I've added a patch that I think upgrades this correctly. There is a try push here, feel free to add more builds if I've missed the ones that apply to your area.

I'm kinda hoping to land this before the ESR branches, so that we have the same version of node on ESR140 which might help with uplifts.

Flags: needinfo?(mh+mozilla)
Assignee: mh+mozilla → standard8
Pushed by mbanner@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c2cbb362f6ee Build node 22 for Linux from source. r=firefox-build-system-reviewers,sergesanspaille https://hg.mozilla.org/integration/autoland/rev/ea4930ad6ffd Use Node 22 for tests on CI. r=firefox-build-system-reviewers,perftest-reviewers,glandium,sparky
Status: ASSIGNED → RESOLVED
Closed: 12 days ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch
Blocks: 1967659
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: